package model

import (
	"gorm.io/gorm"
	"time"
)

type DataChat struct {
	Id        int64  `json:"id" gorm:"column:id"`                   //
	FtpInfoId int64  `json:"ftp_info_id" gorm:"column:ftp_info_id"` // 数据所属服务器id
	Date      string `json:"date" gorm:"column:date"`               // 日期
	Time      string `json:"time" gorm:"column:time"`               // 时间
	LogTime   int64  `json:"log_time" gorm:"column:log_time"`       // 时间戳时间
	SteamId   string `json:"steam_id" gorm:"column:steam_id"`       // steam_id
	GameId    int64  `json:"game_id" gorm:"column:game_id"`         // 游戏id
	GameName  string `json:"game_name" gorm:"column:game_name"`     // 游戏名称
	CatType   string `json:"cat_type" gorm:"column:cat_type"`       // 聊天类型
	Content   string `json:"content" gorm:"column:content"`         // 聊天内容
	UpdatedAt int64  `json:"updated_at" gorm:"column:updated_at"`   // 修改时间
	CreatedAt int64  `json:"created_at" gorm:"column:created_at"`   // 添加时间
}

func (DataChat) TableName() string {
	return "sm_data_chat"
}

func (u DataChat) BeforeUpdate(tx *gorm.DB) (err error) {
	now := time.Now()
	unixTime := now.Unix()
	u.UpdatedAt = unixTime
	u.CreatedAt = unixTime
	return nil
}

type DataChatM struct {
	DB *gorm.DB
}

func NewDataChatM() *DataChatM {
	return &DataChatM{
		GetDB(),
	}
}

// InsertChatData 获取用户数据索引
func (c *DataChatM) InsertChatData(DataChatArr []DataChat) bool {

	result := c.DB.Omit("id").CreateInBatches(DataChatArr, 5000)
	if result.Error != nil {
		//fmt.Println("执行 SQL 语句失败:", values)
		// 处理错误，例如记录日志或返回错误信息
		panic(result.Error)

	}
	return true
}
